Low leakage technique for determining power spectra of non-coherently sampled data

ABSTRACT

A technique for determining the amplitudes of frequency components of a waveform sampled from an automatic test system includes assembling a list of N frequencies expected to be found in the sampled waveform. A test program running on the tester generally supplies the list of frequencies. The technique assumes that the sampled waveform conforms to an idealized waveform model that mathematically corresponds to a sum of N sinusoids. Each of the N sinusoids that make up the model has unknown amplitude and a frequency that equals one of the N frequencies in the list of frequencies. The technique attempts to solve for the unknown amplitude of each of the N frequencies by mathematically minimizing, via a linear least-squares algorithm, the difference between the model and the actual, sampled waveform.

FIELD OF THE INVENTION

[0001] This invention relates generally to equipment and methods fortesting electronic devices, and more particularly to a technique forextracting from an electronic test signal the amplitudes of the testsignal's frequency components.

BACKGROUND OF THE INVENTION

[0002] Test programs for automatic test systems commonly require atester to measure the power spectrum of a signal sampled from a deviceunder test (DUT). In a conventional testing scenario, an automatic testsystem generates a stimulus for exercising an input of a DUT and samplesthe output of the DUT as the DUT responds to the stimulus. Testersoftware computes the power spectrum of the sampled output signal byperforming a Discrete Fourier Transform (DFT) on the samples acquired.

[0003] As is known, an error called “leakage” manifests itself in powerspectra produced by a DFT whenever the sample clock is not “coherent”with the sampled signal. The sample clock is “coherent” if its frequencyis a precise integer multiple of each frequencies present in the signalbeing sampled. Leakage is the mathematical consequence of performing aDFT on truncated frequencies—i.e., frequencies that do not complete afull cycle within the sample window. Leakage can be observed as anerroneous broadening of spectral lines, a creation of false peaks andtroughs (lobes), and a general elevation of the power spectrum's noisefloor.

[0004] Several methods have been devised to reduce leakage. One methodis to increase sampling rate. In general, the higher the sampling rate,the smaller the amount of truncation in the frequency range of interestand the smaller the leakage error. Although effective, increasingsampling rate reduces leakage only in proportion to the magnitude of theincrease. It also tends to greatly increase the cost of the samplingequipment used.

[0005] Another common technique for reducing leakage is to multiply thesampled data sequence by a windowing function. The windowing functionhas the effect of tapering the sampled data sequence around itsendpoints, eliminating discontinuities that can give rise to leakageerrors. Different windowing functions can be used, such as Blackman,Hahning, or Hamming windowing functions, each with its own particularcharacteristics. Windowing functions tend to diminish leakage errorsdistant from the peaks in a power spectrum, but also tend to createwider peaks. Thus, they have the effect of redistributing rather thancompletely eliminating leakage. Also, because windowing functionsactually change the data on which a DFT is performed, they tend toslightly distort frequency spectra.

[0006] Yet another technique is to “resample” the waveform data at asampling rate that is coherent with the frequencies of the signal beingsampled. Resampling works by interpolating between actual points sampledat one rate to mathematically construct a series of points that appearto have been sampled at a different rate. Although resampling can beextremely effective for reducing leakage, it is computationallyintensive and its accuracy can suffer from interpolation errors.

[0007] Still another technique for reducing leakage is to vary the rateof the sampling clock so that it precisely equals an integer multiple ofevery frequency found in the sampled signal. This technique is extremelyeffective, but requires expensive hardware. This approach isparticularly expensive when a tester includes a large number of sampleclocks, as is often the case.

[0008] Manufacturers of automatic test equipment (ATE or “testers”)commonly seek to improve their products by providing less costlysolutions to conventional testing problems. Great benefits can begleaned by increasing tester performance while decreasing tester cost.To this end, there is a strong need to provide an inexpensive techniquefor reducing leakage in the spectra of signals sampled by automatic testsystems.

SUMMARY OF THE INVENTION

[0009] With the foregoing background in mind, it is an object of theinvention to reduce leakage in sampled signals without requiring asignificant increase in tester cost.

[0010] To achieve the foregoing object, as well as other objectives andadvantages, a technique for analyzing the frequency content of a sampledwaveform includes assembling a list of N frequencies expected to befound in the sampled waveform. The sampled waveform is assumed toconform to a waveform model that mathematically corresponds to a sum ofN sinusoids. Each of the N sinusoids has unknown amplitude and phase,and a frequency that equals a different one of the N frequencies in thelist of frequencies. The technique solves for the unknown amplitudesand/or phases that best fit the model to the sampled data.

[0011] According to one illustrative embodiment, the technique describedabove is also used when the frequencies of a sampled waveform are notknown in advance. According to this variation, a Fourier Transform iscomputed on a sampled waveform to produce a rough power spectrum. Peaksin the rough power spectrum are identified, and their frequencies arecompiled to form the list of N frequencies. Other factors may beconsidered in compiling the list of N frequencies, for example, knownstimuli to a device from which the sampled data is acquired, and otherattendant circumstances. The technique described above is then conductedon the resulting list of N frequencies, to determine the preciseamplitudes and/or phases of each of the N sinusoids.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Additional objects, advantages, and novel features of theinvention will become apparent from a consideration of the ensuingdescription and drawings, in which

[0013]FIG. 1 is a highly simplified schematic of an automatic testsystem stimulating the input of a device under test and sampling asignal from the output of the device under test;

[0014]FIG. 2 is a high level flowchart depicting a process according tothe invention for determining the amplitudes of frequency components ofa waveform sampled from the automatic test system of FIG. 1, when thefrequencies of the frequency components are known in advance;

[0015]FIG. 3 is a flowchart depicting a process according to theinvention for computing a power spectrum of a waveform sampled by theautomatic test system of FIG. 1 when the frequency components are notknown in advance; and

[0016] FIGS. 4A-4C are simulated power spectra comparing the performanceof different techniques for reducing leakage in response to differentsimulated errors.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0017] Technique

[0018]FIG. 1 is a highly simplified block diagram that shows aconventional configuration for testing a device under test (DUT) 120with an automatic test system 110. The automatic test system includes ahost computer 112. The host computer 112 includes tester software forrunning test programs. A test program controls the tester's hardwareresources for testing a DUT. For example, a test program can control afrequency synthesizer 114 to apply a stimulus to the input of the DUT,and can control a digitizer 116 to sample a response produced at anoutput of the DUT.

[0019] The host computer generally stores sampled data acquired by thedigitizer 116 in memory for analysis. The test program, or softwareroutines available to the test program, operates on the sampled datastored to analyze its contents. Conventionally, the test program woulddirect the tester software to perform a Discrete Fourier Transform (DFT)on the sampled data. The test program would then test the results of theDFT.

[0020]FIG. 2 shows the general process according to the invention forsampling and analyzing test signals in an ATE environment. At step 210,the automatic test system 110 applies a stimulus to an input of the DUT120.

[0021] At step 212, a list of N frequencies is accessed. The Nfrequencies represent frequencies of the sampled waveform about whichamplitude and/or phase information is desired to be known. The number Ncan be any positive integer. Not all of the N frequencies need actuallybe present in the sampled waveform. In fact, this technique can be usedto test for the presence or absence of any particular frequencycomponent. Preferably, the list of N frequencies is known in advance andstored in the test program.

[0022] At step 214, the sampled waveform is computer modeled. Thecomputer model representing the sampled waveform consists of N sinusoidssummed together to approximate the actual sampled waveform. Each of theN sinusoids takes the form

A _(k) sin(ω_(k) i)+B _(k) cos(ω_(k) i),   (EQ1)

[0023] where—

[0024] “A_(k)” and “B_(k)” are unknown coefficients,

[0025] “k” is an index that ranges from 1 to N and represents one of theN frequency components,

[0026] ω_(k) corresponds to the k^(th) frequency component(specifically, ω_(k)=2πF_(k), where F_(k) is the k^(th) frequency), and

[0027] “i” is an index that identifies a particular sample andcorresponds to time.

[0028] Although EQ1 appears to be the sum of two sinusoids, itmathematically equates to a single sinusoid having a frequency equal toω_(k)/2π, an amplitude that equals {square root}{square root over(A²k+B²k)}, and a phase that equals the 2-argument arctangent of B_(k)and A_(k).

[0029] Given that EQ1 represents each of the N sinusoids in the sampledwaveforrn, the overall sampled waveform can be modeled by theexpression— $\begin{matrix}{\sum\limits_{k = 1}^{N}\quad {\left( {{A_{k}\cos \quad \omega_{k}i} + {B_{k}\sin \quad \omega_{k}i}} \right).}} & \left( {{EQ}\quad 2} \right)\end{matrix}$

[0030] At step 216 the waveform model of EQ2 is computer-processed toachieve a best fit between the model and the actual sampled waveform.The preferred embodiment employs a linear least-squares technique to fitthe model to the data. In particular, step 216 attempts to minimize thefollowing least-squares estimator: $\begin{matrix}{{\underset{i = 0}{\overset{M}{\sum\quad}}\left\lbrack {y_{i} - {\sum\limits_{k = 1}^{N}\quad \left( {{A_{k}\cos \quad \omega_{k}i} + {B_{k}\sin \quad \omega_{k}i}} \right)}} \right\rbrack}^{2},} & \left( {{EQ}\quad 3} \right)\end{matrix}$

[0031] wherein y_(i) is the i^(th) sampled point of the sampledwaveform, and i ranges from 0 to M, where M represents the total numberof samples in the sampled waveform.

[0032] In order to minimize EQ3, the technique recognizes that a bestfit is achieved when the partial derivative of EQ3 equals zero, whentaken with respect to each value of A_(k) and B_(k). Because thereexists a value of A_(k) and B_(k) for each of the N frequencies, takingthe partial derivative of EQ3 with respect to each of these yields asystem of 2N equations: $\begin{matrix}{{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{j}i}} = {\underset{k = 1}{\overset{N}{\sum\quad}}\left( {{A_{k}{\sum\limits_{i = 0}^{M}\quad {\cos \quad \omega_{k}i\quad \cos \quad \omega_{j}i}}} + {B_{k}{\sum\limits_{i = 0}^{M}\quad {\sin \quad \omega_{k}i\quad \cos \quad \omega_{j}i}}}} \right)}} & \left( {{EQ}\quad 4} \right) \\{{{\sum\limits_{i = 0}^{M}\quad {y_{i}\sin \quad \omega_{j}i}} = {\underset{k = 1}{\overset{N}{\sum\quad}}\left( {{A_{k}{\sum\limits_{i = 0}^{M}\quad {\cos \quad \omega_{k}i\quad \sin \quad \omega_{j}i}}} + {B_{k}{\sum\limits_{i = 0}^{M}\quad {\sin \quad \omega_{k}i\quad \sin \quad \omega_{j}i}}}} \right)}},} & \left( {{EQ}\quad 5} \right)\end{matrix}$

[0033] where EQ4 and EQ5 are each repeated N times as the index of “j”ranges from 1 to N.

[0034] Defining the following coefficients simplifies the description:$\begin{matrix}{{{Let}\quad {cc}_{kj}} = {\sum\limits_{i = 0}^{M}\quad {\cos \quad \omega_{k}i\quad \cos \quad \omega_{j}i}}} & \left( {{EQ}\quad 6} \right) \\{{{Let}\quad {sc}_{kj}} = {\sum\limits_{i = 0}^{M}\quad {\sin \quad \omega_{k}i\quad \cos \quad \omega_{j}i}}} & \left( {{EQ}\quad 7} \right) \\{{{Let}\quad {cs}_{kj}} = {\sum\limits_{i = 0}^{M}\quad {\cos \quad \omega_{k}i\quad \sin \quad \omega_{j}i}}} & \left( {{EQ}\quad 8} \right) \\{{{Let}\quad {ss}_{kj}} = {\sum\limits_{i = 0}^{M}\quad {\sin \quad \omega_{k}i\quad \sin \quad \omega_{j}i}}} & \left( {{EQ}\quad 9} \right)\end{matrix}$

[0035] These coefficients can be mathematically simplified byrecognizing that—${cc}_{kj} = {\left( {{\sum\limits_{i = 0}^{M}\quad {{\cos \left( {\omega_{k} + \omega_{j}} \right)}i}} + {\sum\limits_{i = 0}^{M}\quad {{\cos \left( {\omega_{k} - \omega_{j}} \right)}i}}} \right)/2}$${sc}_{kj} = {{cs}_{kj} = {\left( {{\sum\limits_{i = 0}^{M}\quad {{\sin \left( {\omega_{k} + \omega_{j}} \right)}i}} + {\sum\limits_{i = 0}^{M}\quad {{\sin \left( {\omega_{k} - \omega_{j}} \right)}i}}} \right)/2}}$${{ss}_{kj} = {\left( {{\sum\limits_{i = 0}^{M}\quad {{\cos \left( {\omega_{k} + \omega_{j}} \right)}i}} - {\sum\limits_{i = 0}^{M}\quad {{\cos \left( {\omega_{k} - \omega_{j}} \right)}i}}} \right)/2}},$

[0036] and that${\sum\limits_{i = 0}^{M}\quad {\cos \quad \alpha \quad i}} = {{\left( {{\cos \quad {\alpha \left( {N - 1} \right)}} - {\cos \quad \alpha \quad N} - {\cos \quad \alpha} + 1} \right)/2}\left( {1 - {\cos \quad \alpha}} \right)\quad {and}}$${{\sum\limits_{i = 0}^{M}\quad {\sin \quad \alpha \quad i}} = {{\left( {{\sin \quad {\alpha \left( {N - 1} \right)}} - {\sin \quad \alpha \quad N} + {\sin \quad \alpha}} \right)/2}\left( {1 - {\cos \quad \alpha}} \right)}},$

[0037] wherein α is any arbitrary value of ω.

[0038] Rewriting EQ4 and EQ5 using the coefficients defined in EQ6-EQ9yields the following matrix: $\begin{matrix}{\overset{V}{\begin{pmatrix}{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{1}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\sin \quad \omega_{1}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{2}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\sin \quad \omega_{2}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{3}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\sin \quad \omega_{3}i}} \\\cdots \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{N}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{N}i}}\end{pmatrix}} = \overset{X}{\begin{pmatrix}{cc}_{11} & {sc}_{11} & {cc}_{21} & {sc}_{21} & \ldots & {cc}_{N1} & {sc}_{N1} \\{cs}_{11} & {ss}_{11} & {cs}_{21} & {ss}_{21} & \ldots & {cs}_{N1} & {ss}_{N1} \\{cc}_{12} & {sc}_{12} & {cc}_{22} & {sc}_{22} & \ldots & {cc}_{N2} & {sc}_{N2} \\{cs}_{12} & {ss}_{12} & {cs}_{22} & {ss}_{22} & \ldots & {cs}_{N2} & {ss}_{N2} \\{cc}_{13} & {sc}_{13} & {cc}_{23} & {sc}_{23} & \ldots & {cc}_{N3} & {sc}_{N3} \\{cs}_{13} & {ss}_{13} & {cs}_{23} & {ss}_{23} & \ldots & {cs}_{N3} & {ss}_{N3} \\\quad & \quad & \quad & \ldots & \quad & \quad & \quad \\{cc}_{1N} & {sc}_{1N} & {cc}_{2N} & {sc}_{2N} & \ldots & {cc}_{NN} & {sc}_{NN} \\{cs}_{1N} & {ss}_{1N} & {cs}_{2N} & {ss}_{2N} & \ldots & {cs}_{NN} & {ss}_{NN}\end{pmatrix}\overset{ab}{\begin{pmatrix}A_{1} \\B_{1} \\A_{2} \\B_{2} \\A_{3} \\B_{3} \\\ldots \\A_{N} \\B_{N}\end{pmatrix}}}} & \left( {{EQ}\quad 10} \right)\end{matrix}$

[0039] One can solve EQ10 for each value of A_(k) and B_(k) in the abvector by determining the inverse of the matrix X and multiplying it bythe vector V on the left-hand side of EQ10.

[0040] Once A_(k) and B_(k) are known for each value of k from 1 to N,the amplitude of each k^(th) frequency from the list of frequencies canbe determined by computing {square root}{square root over (A²k+B²k)}.The value of each phase can be determined by computing the 2-argumentArcTangent of B_(k) and A_(k).

[0041] The computational burdens imposed by solving EQ10 can be somewhatreduced by imposing a constraint that 2N=M+1 (the number of frequenciesis half the number of samples). With this constraint in place, thevector V from EQ10 can be rewritten as follows: $\begin{matrix}{\overset{V}{\begin{pmatrix}{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{1}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\sin \quad \omega_{1}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{2}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\sin \quad \omega_{2}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{3}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\sin \quad \omega_{3}i}} \\\cdots \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{N}i}} \\{\sum\limits_{i = 0}^{M}\quad {y_{i}\cos \quad \omega_{N}i}}\end{pmatrix}} = {\overset{C}{\begin{pmatrix}{\cos \quad 0\omega_{1}} & {\cos \quad 1\omega_{1}} & {\cos \quad 2\omega_{1}} & \quad & \ldots & {\cos \quad M\quad \omega_{1}} \\{\sin \quad 0\omega_{1}} & {\sin \quad 1\omega_{1}} & {\sin \quad 2\omega_{1}} & \quad & \ldots & {\sin \quad M\quad \omega_{1}} \\{\cos \quad 0\omega_{2}} & {\cos \quad 1\omega_{2}} & {\cos \quad 2\omega_{2}} & \quad & \ldots & {\cos \quad M\quad \omega_{2}} \\{\sin \quad 0\omega_{2}} & {\sin \quad 1\omega_{2}} & {\sin \quad 2\omega_{2}} & \quad & \ldots & {\sin \quad M\quad \omega_{2}} \\{\cos \quad 0\omega_{3}} & {\cos \quad 1\omega_{3}} & {\cos \quad 2\omega_{3}} & \quad & \ldots & {\cos \quad M\quad \omega_{3}} \\{\sin \quad 0\omega_{3}} & {\sin \quad 1\omega_{3}} & {\sin \quad 2\omega_{3}} & \quad & \ldots & {\sin \quad M\quad \omega_{3}} \\\quad & \quad & \quad & \ldots & \quad & \quad \\{\cos \quad 0\omega_{N}} & {\cos \quad 1\omega_{N}} & {\cos \quad 2\omega_{N}} & \quad & \ldots & {\cos \quad M\quad \omega_{N}} \\{\sin \quad 0\omega_{N}} & {\sin \quad 1\omega_{N}} & {\sin \quad 2\omega_{N}} & \quad & \ldots & {\sin \quad M\quad \omega_{N\quad}}\end{pmatrix}}\overset{y}{\begin{pmatrix}y_{0} \\y_{1} \\y_{2} \\y_{3} \\y_{4} \\y_{5} \\\cdots \\y_{M - 1} \\y_{M}\end{pmatrix}}}} & \left( {{EQ}\quad 11} \right)\end{matrix}$

[0042] Since imposing the above constraint forces C and X⁻¹ to be squarematrices of the same rank, EQ10 and EQ11 can be combined to form—

ab=(X ⁻¹ C)y   (EQ12)

[0043] Thus, it is possible to solve for ab without having to compute V.

[0044] The following method is suggested for solving for ab:

[0045] First, construct C quickly using the following recurrencerelations:

cos(a+1)ω_(k)=2cos ω_(k) cos aω_(k)−cos(a−1)ω_(k)

sin(a+1)ω_(k)=2cos ω_(k) sin aω_(k)−sin(a−1)ω_(k)

[0046] Next, compute X⁻¹ via L-U decomposition

[0047] Apply X⁻¹ to C

[0048] Compute ab by multiplying X−1C by y

[0049] Once X⁻¹C has been constructed, computing ab requires roughly N²multiply-accumulates.

[0050] Preferably, the technique described herein is implemented as afunction in a software library. The function preferably receives aninput array that stores the list of frequencies and a pointer to thesampled data. The function preferably returns an array containing thevalues of A_(k) and B_(k), from which amplitude and phase can becomputed. Alternatively, the function returns amplitude and phasedirectly. The software library preferably resides on an automatic testsystem where it is accessible to test programs running on the testsystem.

[0051] Example

[0052] FIGS. 4A-4C illustrate a simulated prediction of the performanceof the best-fit technique according to the invention versus othertechniques for reducing leakage. A listing of the test code used toproduce the data for these charts is provided at the end of thespecification. Each of the three graphs of FIGS. 4A-4C compares thepower spectrum of a single tone obtained under four differentconditions:

[0053] 1. a Fast Fourier Transform (FFT) of uncorrected data (i.e.,acquired with a rectangular window, labeled “uncorrected”)

[0054] 2. an FFT of data shaped by a Hanning window (“windowed”),

[0055] 3. an FFT of resampled data (“resampled”), and

[0056] 4. the best-fit technique described herein (“least squares”).

[0057] The horizontal axis of each graph corresponds tofrequency—specifically, frequency bins 0-63. To allow for directcomparisons with methods that employ an FFT, the best fit technique wasrun with N=64, where each of the N frequencies corresponds to an FFTbin. The vertical axis corresponds to amplitude in db.

[0058] Each graph shows a single tone that is slightly askew from thecenter of the 9^(th) frequency bin, i.e., which is not coherentlysampled. In particular ω_(k)=2π(k−1)(1+ε), where ε=10⁻⁶ for FIG. 4A,10⁻⁹ for FIG. 4B, and 10⁻¹² for FIG. 4C. Each of these graphs revealsthe strength of the best-fit technique. As compared with the othertechniques, the best-fit technique maintains an exceedingly narrow peakwithout elevated areas (“skirts”) surrounding the peak.

[0059] Advantages

[0060] The disclosed technique offers many advantages over theconventional DFT, particularly in the context of automatic testequipment. Using the technique described, highly accurate spectralanalysis can be performed using relatively inexpensive testerelectronics. The sample clock need not be coherent with the frequenciesto be measured, and spectral leakage is substantially eliminated. Ascompared with a conventional DFT, in which frequencies are sorted intobins that have finite widths, the technique disclosed does not employfrequency bins but rather discrete frequencies. Thus, the techniquesdisclosed enable exceedingly closely spaced frequencies to be resolvedin a way that would be impossible using a conventional DFT.

[0061] The technique is also scalable, because its computation timevaries as a function of N—the number of frequencies to be analyzed.Thus, the technique can be performed relatively quickly if only a smallnumber of frequencies is being analyzed. In addition, because thetechnique employs a best-fit algorithm, it can be used to determine theamplitude and phase of frequency components that do not fully complete acycle within the sample window. The requirement that frequencies beprescribed in advance does not generally operate as a disadvantage inautomatic test equipment, where frequencies produced by a DUT arelargely known in advance, and where the tester generates the stimuli fordriving the DUT.

[0062] Although X⁻¹C requires significant time to compute, it need notbe recomputed each time a waveform is analyzed. As long as the frequencylist and the number of samples M remains constant, newly acquiredsampled can be analyzed by retrieving a stored copy of X⁻¹C andmultiplying it by y. Libraries can be provided that include a variety ofdifferent X⁻¹C combinations for different frequencies and numbers ofsamples. Users can select from among the combinations to provide rapidanalysis of waveforms.

[0063] Alternatives

[0064] Having described one embodiment, numerous alternative embodimentsor variations can be made.

[0065] For example, as described above, the technique for analyzingsampled waveforms is used in the context of automatic test equipment.However, the technique can be more generally applied to any sampled datafor which analysis of frequency information is desired. Although thetechnique is illustrated with respect to the particular test scenario ofFIG. 1, it is not limited to any particular test scenario.

[0066] The embodiment disclosed herein specifies the use of linear leastsquares for obtaining a best fit between the waveform model (EQ2) andthe actual sampled data. However, other best-fit techniques can be used,such as Cauchy-Lorentz distributions and techniques that attempt tominimize the absolute value of difference between the model and thesampled data. Therefore, the invention is not limited to the use ofleast-squares.

[0067] In addition, the description provides that software be used formanipulating matrices and performing the requisite computations.Alternatively, specialized hardware circuits or processors could beprovided to more efficiently perform these functions.

[0068] As described above, the technique requires that the list of Nfrequencies be known in advance. This requirement can be avoided,however, by performing a DFT on the sampled data and examining theresults. This variation is illustrated in FIG. 3. At step 310, a DFT isperformed. At step 312 peaks are identified in the power spectrum thatresults from the DFT. The frequencies corresponding to the peaks arethen be appended to the list of frequencies for performing a moreaccurate analysis. Steps 316 and 318 proceed as already described: byassuming that the sampled data conforms to a model and obtaining a bestfit between the samples and the model. This technique need not operatein a vacuum. It can also take attendant circumstances into account, suchas the frequencies of stimuli applied to the DUT, harmonics of thosefrequencies, and known characteristics of the DUT.

[0069] The technique described above assumes that waveforms are sampledat a uniform rate. However, according to an alternative embodiment,waveforms can be sampled at non-uniform rates. In particular, replacingthe discrete index “i” in the equations and matrices above with the term“t_(i)” (i.e., the actual sample times) allows for arbitrarilynon-uniform sampling. With non-uniform sampling, the computationalsimplifications that follow EQ9 may not be used; however, the change istransparent to the remainder of the technique described.

[0070] Each of these alternatives and variations, as well as others, hasbeen contemplated by the inventors and is intended to fall within thescope of the instant invention. It should be understood, therefore, thatthe foregoing description is by way of example, and the invention shouldbe limited only by the spirit and scope of the appended claims.

What is claimed is:
 1. A method of analyzing the frequency components ofa sampled signal, comprising: (A) creating a list of N differentfrequency components sought to be analyzed within the sampled signal,N>1, wherein the frequency of each of the N frequency components isknown and the amplitude and phase are unknown; (B) modeling the sampledsignal as a waveform model that corresponds to a sum of N sinusoids,each of the N sinusoids also having an unknown amplitude and phase, anda frequency that equals one of the frequencies of the plurality of Nfrequency components; and (C) processing the waveform model to best fitthe waveform model to the sampled signal.
 2. The method as recited inclaim 1, wherein step C of computer processing the waveform modelapplies a least squares algorithm for fitting the waveform model to thesampled signal.
 3. The method as recited in claim 2, wherein each of theN sinusoids can be expressed in the form A_(k) sin ω_(k)i+B_(k) cosω_(k)i, wherein— “A_(k)” and “B_(k)” are unknown coefficients, “k” is anindex that ranges from 1 to N and represents one of the N frequencycomponents, ω_(k) corresponds to the k^(th) frequency component, and “i”is an index that identifies a particular sample and corresponds to time.4. The method as recited in claim 3, wherein the step C of processingthe waveform model minimizes an estimator that can be expressed as—${\underset{i = 0}{\overset{M}{\sum\quad}}\left\lbrack {y_{i} - {\sum\limits_{k = 1}^{N}\quad \left( {{A_{k}\cos \quad \omega_{k}i} + {B_{k}\sin \quad \omega_{k}i}} \right)}} \right\rbrack}^{2},$

wherein— “M” corresponds to a number of samples that makes up thesampled waveform, and “y_(i)” represents the i^(th) point if the sampledwaveform.
 5. The method as recited in claim 1, further comprisingsolving for at least one of the unknown amplitudes and phases of the Nfrequency components.
 6. The method as recited in claim 5, wherein theamplitude of each k^(th) of the N frequency components can be expressedas— {square root}{square root over (A ² k+B ² k)}.
 7. The method asrecited in claim 5, wherein the phase of each k^(th) of the N frequencycomponents can be expressed as the 2-argument arctangent of B_(k) andA_(k).
 8. A method of testing a device under test in an automatic testsystem, comprising: (A) applying a stimulus signal to the device undertest; (B) sampling a response signal from the device under test; (C)creating a list of N different frequency components sought to beanalyzed within the sampled response signal, N>1, wherein the frequencyof each of the N frequency components is known and the amplitude andphase are unknown; (D) computer modeling the sampled signal as awaveform model that corresponds to a sum of N sinusoids, each of the Nsinusoids also having an unknown amplitude and phase, and a frequencythat equals a different one of the frequencies of the plurality of Nfrequency components; (D) computer processing the waveform model to bestfit the waveform model to the sampled signal; and (E) solving for atleast one of the unknown amplitudes and phases of the N frequencycomponents.
 9. The method as recited in claim 8, wherein the device istested as part of its manufacturing process for ensuring its qualityprior to shipment.
 10. The method as recited in claim 8, wherein thestep C of creating the list of N different frequency componentscomprises: providing with the list of N frequency components a frequencyof a stimulus signal applied to the device under test.
 11. The method asrecited in claim 10, further comprising: providing with the list of Nfrequency components harmonics of the frequency of the stimulus signalapplied to the device under test.
 12. The method as recited in claim 8,wherein the step C of creating the list of N different frequencycomponents comprises: performing a Discrete Fourier Transform (DFT) onthe sampled response signal; identifying peaks in the DFT; and adding tothe list of N frequency components frequencies substantially equal tothe peaks in the DFT.
 13. In an automatic test system, an apparatus foranalyzing the frequency content of test signals, comprising: a digitizerfor sampling a test signal from a device under test; a memory forstoring a list of N different frequency components sought to be analyzedwithin the sampled signal, N>1, wherein the frequency of each of the Nfrequency components is known and the amplitude and phase are unknown;software for computer modeling the sampled signal as a waveform modelthat corresponds to a sum of N sinusoids, each of the N sinusoids alsohaving an unknown amplitude and phase, and a frequency that equals adifferent one of the frequencies of the plurality of N frequencycomponents; and software for computer processing the waveform model tobest fit the waveform model to the sampled signal.
 14. The apparatus asrecited in claim 13, further comprising a test program that runs on theautomatic test system and prescribes the frequencies in the list of Nfrequencies.
 15. The apparatus as recited in claim 13, wherein thesoftware for computer modeling and the software for computer processingreside in a software library that is accessible by different testprograms for analyzing sampled waveforms.
 16. The apparatus as recitedin claim 13, wherein the software for computer processing applies aleast squares algorithm for fitting the waveform model to the sampledresponse signal.
 17. The apparatus as recited in claim 16, wherein eachof the N sinusoids can be expressed in the form A_(k) sin ω_(k)i+B_(k)cos ω_(k)i, wherein— “A_(k)” and “B_(k)” are unknown coefficients, “k”is an index that ranges from 1 to N and represents one of the Nfrequency components, ω_(k) corresponds to the k^(th) frequencycomponent, and “i” is an index that corresponds to time.
 18. The methodas recited in claim 17, wherein the software for computer processingminimizes an estimator that can be expressed as—${\underset{i = 0}{\overset{M}{\sum\quad}}\left\lbrack {y_{i} - {\sum\limits_{k = 1}^{N}\quad \left( {{A_{k}\cos \quad \omega_{k}i} + {B_{k}\sin \quad \omega_{k}i}} \right)}} \right\rbrack}^{2},$

wherein— “M” represents a number of samples that make up the sampledwaveform, and “y_(i)” represents the i^(th) point if the sampledwaveform.
 19. In an automatic test system, an apparatus for analyzingthe frequency content of test signals, comprising: a digitizer forsampling a test signal from a device under test; means for storing alist of N different frequency components sought to be analyzed withinthe sampled signal, N>1, wherein the frequency of each of the Nfrequency components is known and the amplitude and phase are unknown;means for modeling the sampled signal as a waveform model thatcorresponds to a sum of N sinusoids, each of the N sinusoids also havingan unknown amplitude and phase, and a frequency that equals a differentone of the frequencies of the plurality of N frequency components; andmeans for processing the waveform model to best fit the waveform modelto the sampled signal.
 20. The apparatus as recited in claim 19, whereinthe means for modeling and the means for processing reside in a softwarelibrary that is accessible by different test programs for analyzingsampled waveforms.
 21. The method as recited in claim 1, wherein thesampled signal is sampled at a non-uniform rate.